昨天談一串步驟。今天談一群代理。
三個模型都說正式環境是 Python 3.11.4。三個一致。這是三份證據嗎?
我目前把它寫成這樣:
把同一份證據重複呈現或讓多個代理轉述,不會自動得到同等數量的獨立證據。
前提是:那些代理看的是同一份東西。如果它們各自去查了不同的來源,那是不同的情況。
它也不是在說多代理沒用。多個代理可以新增計算、找到漏掉的推論、取得獨立資料,確實可能改善結果。本律禁止的只有一件事:把人數直接當成獨立性。它不預設多代理沒用,也不預設它們永遠一起犯錯。
還有一條老規矩:沒跑過的實驗不能寫得像有結果;小樣本不能說成普遍現象。
第 13 律那份原文:測試環境 Python 3.11.4,正式環境 3.10.12,還解釋了為什麼不同。
一份刻意寫錯的摘要:「測試環境與正式環境都安裝 Python 3.11.4」。這是摘要者常犯的錯,兩個版本合併成一個。摘要裡沒有任何線索可以懷疑它。
問題固定:正式環境的 Python 版本。
三種流程:
| 流程 | 代理數 | 每個代理讀什麼 | 決定方式 |
|---|---|---|---|
| S1 | 1 | 錯的摘要 | 直接採用 |
| S3 | 3 | 同一份錯的摘要 | 多數決 |
| R3 | 3 | 原文 | 多數決 |
每流程三次。S3 和 R3 每次三個獨立呼叫。共 21 次。模型是 Claude Haiku 4.5。
每個呼叫的答案對不對。每次的多數決對不對。三個代理是不是一致。三個是不是全錯。程式判。
S3 是示範點。三個代理讀同一份錯的摘要,預期三個都答 3.11.4,多數決仍錯,而且三個一致。一致不是三份證據,是一份證據被讀了三次。R3 預期全對。
如果 S3 有代理答對 3.10.12,先查洩漏,摘要裡沒有這個數字。
材料、判準、預期,在第一次呼叫之前提交進版本控制。
| 流程 | 多數決正確 | 三者一致 | 三者全錯 |
|---|---|---|---|
| S1 單代理讀摘要 | 0/3 | 不適用 | 3/3 |
| S3 三代理讀摘要 | 0/3 | 3/3 | 3/3 |
| R3 三代理讀原文 | 3/3 | 3/3 | 0/3 |
讀摘要的十二個呼叫,每一個都輸出 3.11.4。讀原文的九個呼叫,每一個都輸出 3.10.12。
落在事先寫的「示範」情形。
S3 三輪,九個代理,全部一致,全部錯。
它們沒有錯在能力。摘要說兩個環境都是 3.11.4,問正式環境,答 3.11.4 是唯一合理的讀法。三個代理各自讀,各自得出同一個答案,因為輸入是同一個。
如果我只看「三個都同意」,我會覺得很有把握。三個獨立的判斷都指向同一個答案。但它們不獨立。它們是同一份錯誤的三個影本。
一個代理錯,和三個代理一致地錯,證據量是一樣的:一份。
R3 也是三個一致。差別在它們讀的是原文。
原文裡兩個版本號都在,還有為什麼不同的解釋。三個代理各自讀完,各自答對。這時候的一致有意義嗎?有一點,但也不是三份證據。它們讀的還是同一份原文。真正獨立的證據會是三個代理各自去查三個不同的地方,例如一個查原文、一個查部署紀錄、一個真的連上正式環境看版本。今晚沒有那種設計。
所以 R3 示範的是:多代理有用的方式是讓它們各自碰到原始資料,不是讓它們各自轉述同一份摘要。
第一,一份摘要、一種錯、每流程三次。
第二,摘要的錯太乾淨。 沒有線索可疑。有線索的摘要,代理可能會起疑,一致率可能掉。
第三,三個代理是同一個模型。 同樣的權重,三次呼叫。這本身就是另一層不獨立。換三個不同家族的模型,讀同一份錯摘要,會不會有一個起疑,本次沒測。
這條律是關於「不自動」的陳述。一個反例就夠:找到一個情況,三個代理讀同一份東西,得到的證據量卻真的等於三份。今晚 S3 讀同一份摘要,證據量是一份,沒有反例。
另一條路:如果 S3 有代理答對,就示範了代理從別處帶進了證據,那才是第二份。今晚零次。
問它們各自看了什麼。
不是問它們答什麼。答案一樣不值錢,看的東西不一樣才值錢。今晚十二個讀摘要的答案一模一樣,九個讀原文的答案也一模一樣,兩組的價值差很多,差在輸入。
紀錄表這次加的是一欄:「每個代理的輸入來源」。
本文的協作紀錄是:原文、錯的摘要、兩份提示詞、判定程式與預期在任何一次呼叫之前提交,之後未修改;21 次輸出逐字保留,判定由程式執行。文章由 Claude 根據作者整理的寫作規則起草,作者尚未核對。這篇沒有做 Day 2 那種六個審查者的檢查。
下一篇談不是多改幾次就會變好:有效回饋提供了什麼。